package com.example.service;

import com.example.common.Result;
import com.example.vo.DiscountInfoVO;

import java.math.BigDecimal;

/**
 * 会员折扣服务接口
 */
public interface MemberDiscountService {
    
    /**
     * 根据会员等级计算折扣后价格
     * @param originalPrice 原价
     * @param memberLevel 会员等级
     * @return 折扣后价格
     */
    Result<BigDecimal> calculateDiscountPrice(BigDecimal originalPrice, String memberLevel);
    
    /**
     * 获取会员折扣率
     * @param memberLevel 会员等级
     * @return 折扣率（如0.95表示95折）
     */
    Result<BigDecimal> getMemberDiscountRate(String memberLevel);
    
    /**
     * 获取会员折扣信息
     * @param originalPrice 原价
     * @param memberLevel 会员等级
     * @return 包含原价、折扣率、折扣后价格、节省金额的完整信息
     */
    Result<DiscountInfoVO> getMemberDiscountInfo(BigDecimal originalPrice, String memberLevel);
    
    /**
     * 检查是否为VIP会员
     * @param memberLevel 会员等级
     * @return 是否为VIP
     */
    boolean isVipMember(String memberLevel);
    
    /**
     * 获取会员等级名称
     * @param memberLevel 会员等级
     * @return 会员等级名称
     */
    String getMemberLevelName(String memberLevel);
} 